Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

dfu: Add custom device update #21075

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

mathijsmeulendijks
Copy link

This pull request introduces support for custom firmware upgrades to the DFU (Device Firmware Update) target library. The changes include updates to documentation, configuration options, and the addition of a new header file for custom DFU target implementation.

Configuration Updates:

  • Introduced a new Kconfig option CONFIG_DFU_TARGET_CUSTOM to enable support for custom updates.

Support for Custom DFU Targets:

  • Added a new header file include/dfu/dfu_target_custom.h with function declarations for custom DFU target implementation.
  • Updated include/dfu/dfu_target.h to include a new image type DFU_TARGET_IMAGE_TYPE_CUSTOM for custom updates. [1] [2]
  • Modified subsys/dfu/dfu_target/src/dfu_target.c to support the new custom DFU target by including the custom header and adding logic for identifying and initializing custom updates. [1] [2] [3]Adds a custom device update option to the DFU subsystem
    Signed-off-by: Mathijs Meulendijks mathijs.meulendijks@unitial.tech

Adds a custom device update option to the DFU subsystem
Signed-off-by: Mathijs Meulendijks <mathijs.meulendijks@unitial.tech>
@mathijsmeulendijks mathijsmeulendijks requested review from a team as code owners March 20, 2025 14:58
@github-actions github-actions bot added doc-required PR must not be merged without tech writer approval. changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. labels Mar 20, 2025
@NordicBuilder
Copy link
Contributor

Thank you for your contribution!
It seems you are not a member of the nrfconnect GitHub organization. External contributions are handled as follows:
Large contributions, affecting multiple subsystems for example, may be rejected if they are complex, may introduce regressions due to lack of test coverage, or if they are not consistent with the architecture of nRF Connect SDK.
PRs will be run in our continuous integration (CI) test system.
If CI passes, PRs will be tagged for review and merged on successful completion of review. You may be asked to make some modifications to your contribution during review.
If CI fails, PRs may be rejected or may be tagged for review and rework.
PRs that become outdated due to other changes in the repository may be rejected or rework requested.
External contributions will be prioritized for review based on the relevance to current development efforts in nRF Connect SDK. Bug fix PRs will be prioritized.
You may raise issues or ask for help from our Technical Support team by visiting https://devzone.nordicsemi.com/.

Note: This comment is automatically posted and updated by the Contribs GitHub Action.

@NordicBuilder NordicBuilder added the external External contribution label Mar 20, 2025
@nordicjm nordicjm added the CI-Requested Approves single commit for CI tests on Internal HW label Mar 24, 2025
@NordicBuilder
Copy link
Contributor

NordicBuilder commented Mar 24, 2025

CI Information

To view the history of this post, clich the 'edited' button above
Build number: 2

Inputs:

Sources:

sdk-nrf: PR head: 1600b127cb8f30008cefd5942849e72e05a64b1c

more details

sdk-nrf:

PR head: 1600b127cb8f30008cefd5942849e72e05a64b1c
merge base: d3df48361924586d3c27e02091c832fef4a9b107
target head (main): 831d14c8a32905b89d6cadb9f01b94facb403865
Diff

Github labels

Enabled Name Description
ci-disabled Disable the ci execution
ci-all-test Run all of ci, no test spec filtering will be done
ci-force-downstream Force execution of downstream even if twister fails
ci-run-twister Force run twister
ci-run-zephyr-twister Force run zephyr twister
List of changed files detected by CI (5)
doc
│  ├── nrf
│  │  ├── libraries
│  │  │  ├── dfu
│  │  │  │  │ dfu_target.rst
include
│  ├── dfu
│  │  ├── dfu_target.h
│  │  │ dfu_target_custom.h
subsys
│  ├── dfu
│  │  ├── dfu_target
│  │  │  ├── Kconfig
│  │  │  ├── src
│  │  │  │  │ dfu_target.c

Outputs:

Toolchain

Version: 4ffa2202d5
Build docker image: docker-dtr.nordicsemi.no/sw-production/ncs-build:4ffa2202d5_8bf7ca4353

Test Spec & Results: ✅ Success; ❌ Failure; 🟠 Queued; 🟡 Progress; ◻️ Skipped; ⚠️ Quarantine

  • ◻️ Toolchain - Skipped: existing toolchain is used
  • ✅ Build twister - Skipped: Skipping Build & Test as it succeeded in a previous run: 1
  • ❌ Integration tests
    • ✅ test-fw-nrfconnect-chip - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_cloud - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_serial_lte_modem - Skipped: Job was skipped as it succeeded in a previous run
    • ✅ test-fw-nrfconnect-nrf-iot_zephyr_lwm2m - Skipped: Job was skipped as it succeeded in a previous run
    • ❌ test-sdk-find-my
    • ⚠️ test-fw-nrfconnect-fw-update
Disabled integration tests
    • desktop52_verification
    • doc-internal
    • test-fw-nrfconnect-apps
    • test-fw-nrfconnect-ble_samples
    • test-fw-nrfconnect-boot
    • test-fw-nrfconnect-fem
    • test-fw-nrfconnect-nfc
    • test-fw-nrfconnect-nrf-iot_libmodem-nrf
    • test-fw-nrfconnect-nrf-iot_mosh
    • test-fw-nrfconnect-nrf-iot_positioning
    • test-fw-nrfconnect-nrf-iot_samples
    • test-fw-nrfconnect-nrf-iot_thingy91
    • test-fw-nrfconnect-nrf_crypto
    • test-fw-nrfconnect-proprietary_esb
    • test-fw-nrfconnect-ps
    • test-fw-nrfconnect-rpc
    • test-fw-nrfconnect-rs
    • test-fw-nrfconnect-tfm
    • test-fw-nrfconnect-thread
    • test-low-level
    • test-sdk-audio
    • test-sdk-dfu
    • test-sdk-mcuboot
    • test-sdk-pmic-samples
    • test-sdk-wifi
    • test-secdom-samples-public

Note: This message is automatically posted and updated by the CI

Copy link

You can find the documentation preview for this PR here.

Preview links for modified nRF Connect SDK documents:

https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/app_dev/board_names.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/glossary.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/libraries/dfu/dfu_target.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/amazon_sidewalk/index.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/matter/getting_started/custom_clusters.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/index.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/adaptivity_test_procedure.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/antenna_gain_compensation.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/band_edge_compensation.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/index.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/radio_test_short_range_sample/ble_radio_test_firmware.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/radio_test_short_range_sample/ble_radio_test_for_per_measurements.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/radio_test_short_range_sample/index.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/radio_test_short_range_sample/thread_radio_test_for_per_measurements.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/radio_test_short_range_sample/thread_radio_testing.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/regulatory_test_cases.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/test_setup.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/using_wifi_shell_sample.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/using_wifi_station_sample.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/wifi_radio_test_sample/index.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/wifi_radio_test_sample/setting_regulatory_domain.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/wifi_radio_test_sample/wifi_build_instructions.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/wifi_radio_test_sample/wifi_radio_sample_for_transmit_tests.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/protocols/wifi/regulatory_certification/wifi_radio_test_sample/wifi_radio_test_for_per_measurements.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/releases_and_maturity/known_issues.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/releases_and_maturity/releases/release-notes-changelog.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/samples/amazon_sidewalk.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/applications/nrf_desktop/board_configuration.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/applications/nrf_desktop/description.html
doc/nrf/samples/amazon_sidewalk.rst
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/samples/bluetooth/channel_sounding_ras_initiator/README.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/samples/matter/manufacturer_specific/README.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/samples/wifi/radio_test/multi_domain/sample_description.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/samples/wifi/shell/README.html
https://ncsdoc.z6.web.core.windows.net/PR-21075/nrf/samples/wifi/sta/README.html

@mathijsmeulendijks
Copy link
Author

@nordicjm can you provide the Jenkins log?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
changelog-entry-required Update changelog before merge. Remove label if entry is not needed or already added. CI-Requested Approves single commit for CI tests on Internal HW doc-required PR must not be merged without tech writer approval. external External contribution
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants